/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.hochschild.sgv.service.implementacion;

import com.hochschild.sgv.domain.Division;
import com.hochschild.sgv.domain.Sociedad;
import com.hochschild.sgv.domain.SubDivision;
import com.hochschild.sgv.sap.ConexionSAP;
import com.hochschild.sgv.service.FiltrosManager;
import com.sap.mw.jco.JCO.Table;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author LENOVO
 */
public class SimpleFiltroManager implements FiltrosManager {

    public List<Sociedad> getSociedades(){
        List<Sociedad> lstSociedad = new ArrayList<Sociedad>();
        ConexionSAP conexionSAP = new ConexionSAP();
        Sociedad sociedad = null;

        try{
            conexionSAP = ConexionSAP.getConexionSAP();

            conexionSAP.RegistrarRFC("ZMM_RFCFN_LEER_SOCIEDADES_SGV");
            conexionSAP.EjecutarRFC();
            Table table = conexionSAP.rFC.getTableParameterList().getTable("T_RESULTADO");

            for (int i = 0; i < table.getNumRows(); i++) {
                table.setRow(i);
                sociedad = new Sociedad();
                sociedad.setIdSociedad(table.getField("CODIGO").getString());
                sociedad.setDescripcion(table.getField("DESCRIP").getString());
                lstSociedad.add(sociedad);
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }
        
        return lstSociedad;
    }

    public List<Division> getDivisiones(String idSociedad) {
        List<Division> lstDivision = new ArrayList<Division>();
        ConexionSAP conexionSAP = new ConexionSAP();
        Division division = null;

        try{
            conexionSAP = ConexionSAP.getConexionSAP();
            conexionSAP.RegistrarRFC("ZMM_RFCFN_LEER_DIVISION_ED");
            conexionSAP.IngresarDatosInput(idSociedad, "CODSOC");
            conexionSAP.EjecutarRFC();
            
            Table table = conexionSAP.rFC.getTableParameterList().getTable("T_RESULTADO");
            System.out.println("***************ZMM_RFCFN_LEER_DIVISION_ED**************");
            for (int i = 0; i < table.getNumRows(); i++) {
                table.setRow(i);
                division = new Division();
                division.setIdDivision(table.getField("CODIGO").getString());
                division.setDescripcion(table.getField("DESCRIP").getString());
                lstDivision.add(division);
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }

        return lstDivision;
    }

    public List<SubDivision> getSubDivisiones(String idDivision){
        List<SubDivision> lstSubDivision = new ArrayList<SubDivision>();
        ConexionSAP conexionSAP = new ConexionSAP();
        SubDivision subDivision = null;

        try{
            conexionSAP = ConexionSAP.getConexionSAP();

            conexionSAP.RegistrarRFC("ZMM_RFCFN_LEER_SUBDIVISION_ED");
            conexionSAP.IngresarDatosInput(idDivision, "CODDIV");
            conexionSAP.EjecutarRFC();
            
            Table table = conexionSAP.rFC.getTableParameterList().getTable("T_RESULTADO");

            for (int i = 0; i < table.getNumRows(); i++) {
                table.setRow(i);
                subDivision = new SubDivision();
                subDivision.setIdSubDivision(table.getField("CODIGO").getString());
                subDivision.setDescripcion(table.getField("DESCRIP").getString());
                lstSubDivision.add(subDivision);
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }

        return lstSubDivision;
    }
    
public String verificarAdmin(String idUsuario) {
       String resultado="";
       ConexionSAP conexionSAP = new ConexionSAP();
        try {
             conexionSAP = ConexionSAP.getConexionSAP();

            conexionSAP.RegistrarRFC("ZMM_RFCFN_ADMIN_SGV");
            conexionSAP.IngresarDatosInput(idUsuario, "USER");
            conexionSAP.EjecutarRFC();
            resultado = conexionSAP.rFC.getExportParameterList().getString("ESADMIN");
//            resultado="X";
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resultado;
    }    
}